{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-24T09:32:04.498987Z",
     "start_time": "2018-10-24T09:32:03.364970Z"
    },
    "collapsed": true,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.autograd import Variable\n",
    "from torch.optim.lr_scheduler import StepLR\n",
    "from torch.utils.data import DataLoader,TensorDataset\n",
    "import torch.utils.data as data\n",
    "import numpy as np\n",
    "import scipy.io as sio\n",
    "import math\n",
    "import argparse\n",
    "import random\n",
    "import os\n",
    "from My_Loss import HardTripletLoss\n",
    "from My_Loss import HardTripletLoss2\n",
    "from My_Loss import HardTripletLoss_D\n",
    "from tensorboardX import SummaryWriter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-24T09:32:04.508926Z",
     "start_time": "2018-10-24T09:32:04.501789Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "BATCH_SIZE = 64\n",
    "EPISODE = 100000\n",
    "TEST_EPISODE = 1000\n",
    "LEARNING_RATE =2e-5\n",
    "Weight_Deacy = 1e-6\n",
    "GPU = 0\n",
    "Margin = 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-24T09:32:05.706853Z",
     "start_time": "2018-10-24T09:32:04.513695Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "init dataset\n",
      "----------------------------------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "print(\"init dataset\")\n",
    "##################################参数##################################################################\n",
    "dataroot = '../data'\n",
    "dataset = 'CUB1_data'\n",
    "image_embedding = 'res101'               #ResNet101层\n",
    "class_embedding = 'original_att'         #属性表达 85-d\n",
    "#######################################读取视觉特征###################################################################\n",
    "\n",
    "matcontent = sio.loadmat(dataroot + \"/\" + dataset + \"/\" + image_embedding + \".mat\")  #scipy loadmat\n",
    " \n",
    "feature = matcontent['features'].T         #转置 30478x2048 每一行是一个完整的样本\n",
    "\n",
    "label = matcontent['labels'].astype(int).squeeze() - 1   #matlab begin 1 ,numpy begin 0\n",
    "########################################读取属性特征###########################################################\n",
    "\n",
    "matcontent = sio.loadmat(dataroot + \"/\" + dataset + \"/\" + class_embedding + \"_splits.mat\")\n",
    "\n",
    "    \n",
    "# numpy array index starts from 0, matlab starts from 1\n",
    "trainval_loc = matcontent['trainval_loc'].squeeze() - 1    #squeeze()去掉维度中的1 AxBx1 --->AxB\n",
    "\n",
    "test_seen_loc = matcontent['test_seen_loc'].squeeze() - 1\n",
    "test_unseen_loc = matcontent['test_unseen_loc'].squeeze() - 1\n",
    "\n",
    "attribute = matcontent['att'].T    #转置 50x85 每行是整个属性向量\n",
    "\n",
    "x = feature[trainval_loc]                      # train_features trainval里面是图片的编号 begin with 0 ，19832个\n",
    "train_label = label[trainval_loc].astype(int)  # train_label  int类型没变 每个图片的lable 19832个\n",
    "train_id = np.unique(train_label)\n",
    "\n",
    "att = attribute[train_label]                   # train attributes 每个图片的属性 19832个\n",
    "\n",
    "########################add negative pairs#######################\n",
    "#x_negative = np.empty_like(x)\n",
    "#x_negative_label = np.empty_like(train_label)\n",
    "#print(x.shape[0])\n",
    "\n",
    "#for i in range(x.shape[0]):\n",
    "#    pick=np.random.choice(np.where(train_label[i]!=train_id)[0], replace=True)\n",
    "#    x_negative[i] = x[pick]\n",
    "#    x_negative_label[i] = train_label[pick]\n",
    "    \n",
    "x_test = feature[test_unseen_loc]                   # test_feature 5685个\n",
    "test_label = label[test_unseen_loc].astype(int)     # test_label   5685个\n",
    "\n",
    "x_test_seen = feature[test_seen_loc]                #test_seen_feature 4958个\n",
    "test_label_seen = label[test_seen_loc].astype(int)  # test_seen_label  4958个\n",
    "    \n",
    "test_id = np.unique(test_label)                     # test_id  10个类 ，unique去重\n",
    "att_pro = attribute[test_id]                        # test_attribute 每一类的属性向量 10x85\n",
    "\n",
    "# train set\n",
    "train_features = torch.from_numpy(x)   #np-->tensor\n",
    "#train_fearures_negative = torch.from_numpy(x_negative)\n",
    "\n",
    "sample_attributes=[]\n",
    "train_label = torch.from_numpy(train_label).unsqueeze(1) #每张图片的属性转化 ，unsqueeze(1)就是插入到第一维度 AxB维-->Ax1xB\n",
    "#train_negative_label = torch.from_numpy(x_negative_label).unsqueeze(1)\n",
    "# attributes\n",
    "all_attributes = np.array(attribute)  #所有50类属性转变为numpy数组???属性向量仍然用的numpy类型 没有转化为pytorch\n",
    "#print(all_attributes)\n",
    "    \n",
    "#print('-'*50)\n",
    "attributes = torch.from_numpy(attribute) \n",
    "#print(attribute)\n",
    "# test set\n",
    "\n",
    "test_features = torch.from_numpy(x_test)\n",
    "#print(test_features.shape)\n",
    "\n",
    "test_label = torch.from_numpy(test_label).unsqueeze(1)\n",
    "#print(test_label.shape)\n",
    "\n",
    "testclasses_id = np.array(test_id)\n",
    "#print(testclasses_id.shape)\n",
    "\n",
    "test_attributes = torch.from_numpy(att_pro).float()\n",
    "#print(test_attributes.shape)\n",
    "\n",
    "test_seen_features = torch.from_numpy(x_test_seen)\n",
    "#print(test_seen_features.shape)\n",
    "\n",
    "test_seen_label = torch.from_numpy(test_label_seen)\n",
    "\n",
    "train_data = TensorDataset( train_label, train_features )\n",
    "#train_data = TensorDataset(train_label, train_features, train_fearures_negative)\n",
    "\n",
    "#################here need new code to make triplet data#####################\n",
    "print('-'*100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-24T09:32:05.719678Z",
     "start_time": "2018-10-24T09:32:05.713282Z"
    },
    "collapsed": true,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "from my_net_3 import AttributeNetwork\n",
    "from my_net_3 import MetricNetwork"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-24T09:32:10.593285Z",
     "start_time": "2018-10-24T09:32:05.725706Z"
    },
    "hide_input": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "init networks\n",
      "----------------------------------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "# init network\n",
    "print(\"init networks\")\n",
    "attribute_network = AttributeNetwork(312,1200,2048)  #85d属性 1024隐藏层 2048输出 85d到2048d\n",
    "metric_network = MetricNetwork(2048,1200,2048)\n",
    "#triplet_network = TripletNetwork(attribute_network, metric_network)  #metric learning   \n",
    "attribute_network.cuda(GPU) \n",
    "metric_network.cuda(GPU)\n",
    "#attribute_network_optim = torch.optim.Adam(attribute_network.parameters(), lr=LEARNING_RATE, weight_decay=1e-5)\n",
    "#优化器adam 学习率 正则1e-5\n",
    "\n",
    "#attribute_network_scheduler = StepLR(attribute_network_optim, step_size=200000, gamma=0.5)\n",
    "#学习率每200k步 乘0.5\n",
    "attribute_network_optim = torch.optim.Adam(attribute_network.parameters(), lr=LEARNING_RATE,weight_decay=Weight_Deacy)\n",
    "metric_network_optim = torch.optim.Adam(metric_network.parameters(), lr=LEARNING_RATE,weight_decay=Weight_Deacy)\n",
    "#\n",
    "#triplet_network_optim = torch.optim.SGD(triplet_network.parameters(), lr=LEARNING_RATE,momentum=0.9 , \n",
    "#                                         weight_decay=Weight_Deacy)\n",
    "\n",
    "attribute_network_scheduler = StepLR(attribute_network_optim , step_size=10000 , gamma=1)\n",
    "metric_network_scheduler = StepLR(metric_network_optim , step_size=10000 , gamma=1)\n",
    "#\n",
    "print('-'*100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-24T09:32:10.612224Z",
     "start_time": "2018-10-24T09:32:10.597063Z"
    },
    "collapsed": true,
    "hide_input": true
   },
   "outputs": [],
   "source": [
    "def compute_accuracy(test_features, test_label, test_id, test_attributes):\n",
    "    \n",
    "    test_data = TensorDataset(test_features, test_label)\n",
    "    test_batch = 32\n",
    "    test_loader = DataLoader(test_data, batch_size=test_batch, shuffle=False)\n",
    "    total_rewards = 0\n",
    "\n",
    "    sample_labels = test_id\n",
    "    sample_attributes = test_attributes\n",
    "    class_num = sample_attributes.shape[0]\n",
    "    test_size = test_features.shape[0]\n",
    "\n",
    "    print(\"class num:\", class_num)\n",
    "\n",
    "    for batch_features,batch_labels in test_loader:\n",
    "\n",
    "        batch_size = batch_labels.shape[0]\n",
    "        batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(class_num, 0))\n",
    "        batch_features_ext = metric_network(Variable(batch_features_ext).cuda(GPU).float())  # 32*1024\n",
    "\n",
    "        #print(batch_features_ext)\n",
    "\n",
    "        sample_features = metric_network(attribute_network(Variable(sample_attributes).cuda(GPU).float()))\n",
    "        sample_features_ext = sample_features.repeat(batch_size, 1)\n",
    "        #print(sample_features_ext.shape)\n",
    "\n",
    "\n",
    "        relations = F.pairwise_distance(batch_features_ext, sample_features_ext, 2).view(-1, class_num)\n",
    "        re_batch_labels = []\n",
    "        for label in batch_labels.numpy():\n",
    "            index = np.argwhere(sample_labels == label)\n",
    "            re_batch_labels.append(index[0][0])\n",
    "        re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "\n",
    "\n",
    "        _, predict_labels = torch.min(relations.data, 1)\n",
    "        #print(predict_labels)\n",
    "        rewards = [1 if predict_labels[j] == re_batch_labels[j] else 0 for j in range(batch_size)]\n",
    "        total_rewards += np.sum(rewards)\n",
    "    test_accuracy = total_rewards/1.0/test_size\n",
    "    return  test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-24T09:32:10.640577Z",
     "start_time": "2018-10-24T09:32:10.615599Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def compute_accuracy_per_class(test_features, test_label, test_id, test_attributes,cos_sim = False):\n",
    "    \n",
    "    test_data = TensorDataset(test_features, test_label)\n",
    "    test_batch = 32\n",
    "    test_loader = DataLoader(test_data, batch_size=test_batch, shuffle=False)\n",
    "    total_rewards = 0\n",
    "    #print(test_features.size())\n",
    "    sample_labels = test_id\n",
    "    sample_attributes = test_attributes\n",
    "    class_num = sample_attributes.shape[0]\n",
    "    test_size = test_features.shape[0]\n",
    "    per_class_num = np.zeros(class_num)\n",
    "    per_class_true= np.zeros(class_num)\n",
    "\n",
    "    print(\"class num:\", class_num)\n",
    "\n",
    "    for batch_features,batch_labels in test_loader:\n",
    "\n",
    "        batch_size = batch_labels.shape[0]\n",
    "        batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(class_num, 0))\n",
    "        batch_features_ext = metric_network(Variable(batch_features_ext).cuda(GPU).float())  # 32*1024\n",
    "\n",
    "\n",
    "        sample_features = metric_network(attribute_network(Variable(sample_attributes).cuda(GPU).float()))\n",
    "        sample_features_ext = sample_features.repeat(batch_size, 1)\n",
    "\n",
    "        if cos_sim:\n",
    "            relations = F.cosine_similarity(batch_features_ext, sample_features_ext).view(-1, class_num)\n",
    "        else:\n",
    "            relations = F.pairwise_distance(batch_features_ext, sample_features_ext, 2).view(-1, class_num)\n",
    "        re_batch_labels = []\n",
    "        for label in batch_labels.numpy():\n",
    "            index = np.argwhere(sample_labels == label)\n",
    "            re_batch_labels.append(index[0][0])\n",
    "        re_batch_labels_id, batch_per_num = np.unique(re_batch_labels , return_counts=True) \n",
    "        re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "        \n",
    "        for each in range(re_batch_labels_id.size):\n",
    "            #print(re_batch_labels_id[each])\n",
    "            #print(batch_per_num[each])\n",
    "            per_class_num[re_batch_labels_id[each]] = per_class_num[re_batch_labels_id[each]] + batch_per_num[each]\n",
    "        #print(re_batch_labels_id)\n",
    "        #print('-'*100)\n",
    "        #print(batch_per_num)\n",
    "        #print('-'*100)\n",
    "\n",
    "\n",
    "        _, predict_labels = torch.min(relations.data, 1)\n",
    "        for j in range(batch_size):\n",
    "            if predict_labels[j] == re_batch_labels[j]:\n",
    "                per_class_true[re_batch_labels[j]] = per_class_true[re_batch_labels[j]] + 1\n",
    "            \n",
    "        \n",
    "        \n",
    "    per_accuracy = per_class_true[np.nonzero(per_class_num)] / per_class_num[np.nonzero(per_class_num)]\n",
    "    \n",
    "\n",
    "    test_accuracy = np.sum(per_accuracy)/1.0/np.count_nonzero(per_class_num)\n",
    "    \n",
    "    #print(np.count_nonzero(per_class_num))\n",
    "    return  test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-24T12:58:36.434757Z",
     "start_time": "2018-10-24T09:32:10.644670Z"
    },
    "code_folding": [],
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "training...\n",
      "episode: 1 loss tensor(3.1329, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.02066666666666667\n",
      "gzsl: unseen=0.0000 , seen=0.0067 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 200 loss tensor(3.0009, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09961168907071888\n",
      "gzsl: unseen=0.0886 , seen=0.0961 , h=0.0922\n",
      "____________________________________________________________________________________________________\n",
      "episode: 400 loss tensor(2.9871, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14898157023183325\n",
      "gzsl: unseen=0.1106 , seen=0.1961 , h=0.1414\n",
      "____________________________________________________________________________________________________\n",
      "episode: 600 loss tensor(2.9600, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.20161445548412235\n",
      "gzsl: unseen=0.1602 , seen=0.2641 , h=0.1994\n",
      "____________________________________________________________________________________________________\n",
      "episode: 800 loss tensor(2.9053, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2558449029402791\n",
      "gzsl: unseen=0.2067 , seen=0.3290 , h=0.2538\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1000 loss tensor(2.8854, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3349109447195175\n",
      "gzsl: unseen=0.2358 , seen=0.3570 , h=0.2840\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1200 loss tensor(2.8478, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4043818661869211\n",
      "gzsl: unseen=0.3203 , seen=0.3898 , h=0.3516\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1400 loss tensor(2.7698, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40957126877878614\n",
      "gzsl: unseen=0.3293 , seen=0.3899 , h=0.3571\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1600 loss tensor(2.6958, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.43621140603347186\n",
      "gzsl: unseen=0.3571 , seen=0.3956 , h=0.3754\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1800 loss tensor(2.5888, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.44173917046456446\n",
      "gzsl: unseen=0.3591 , seen=0.4114 , h=0.3835\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2000 loss tensor(2.5095, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.46108514647833926\n",
      "gzsl: unseen=0.3898 , seen=0.4146 , h=0.4018\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2200 loss tensor(2.4365, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4694106888832527\n",
      "gzsl: unseen=0.3968 , seen=0.4322 , h=0.4138\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2400 loss tensor(2.3409, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4535586641692174\n",
      "gzsl: unseen=0.3779 , seen=0.4216 , h=0.3986\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2600 loss tensor(2.3219, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.46240324069771044\n",
      "gzsl: unseen=0.3805 , seen=0.4335 , h=0.4053\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2800 loss tensor(2.3874, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4335078918556164\n",
      "gzsl: unseen=0.3427 , seen=0.4309 , h=0.3818\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3000 loss tensor(1.9593, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4625960041862207\n",
      "gzsl: unseen=0.3821 , seen=0.4585 , h=0.4168\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3200 loss tensor(2.0196, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4586991427489691\n",
      "gzsl: unseen=0.3736 , seen=0.4483 , h=0.4076\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3400 loss tensor(2.0825, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4789606820304956\n",
      "gzsl: unseen=0.3976 , seen=0.4578 , h=0.4256\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3600 loss tensor(2.2864, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48587994295145365\n",
      "gzsl: unseen=0.3937 , seen=0.4731 , h=0.4298\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3800 loss tensor(2.3964, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4972150137343956\n",
      "gzsl: unseen=0.4099 , seen=0.4708 , h=0.4382\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4000 loss tensor(2.1365, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5045483609832891\n",
      "gzsl: unseen=0.4068 , seen=0.4809 , h=0.4407\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4200 loss tensor(2.4496, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48421360379931555\n",
      "gzsl: unseen=0.3837 , seen=0.4860 , h=0.4288\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4400 loss tensor(1.7544, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4976351868334643\n",
      "gzsl: unseen=0.4045 , seen=0.4831 , h=0.4403\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4600 loss tensor(2.1255, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5163898139673367\n",
      "gzsl: unseen=0.4210 , seen=0.4825 , h=0.4496\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4800 loss tensor(1.7618, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5219211051790564\n",
      "gzsl: unseen=0.4219 , seen=0.4839 , h=0.4508\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5000 loss tensor(2.2383, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5060897332570866\n",
      "gzsl: unseen=0.4163 , seen=0.4983 , h=0.4536\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5200 loss tensor(2.2911, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5138457126683585\n",
      "gzsl: unseen=0.4032 , seen=0.5005 , h=0.4467\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5400 loss tensor(1.8424, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5061279137739367\n",
      "gzsl: unseen=0.4064 , seen=0.4998 , h=0.4483\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 5600 loss tensor(2.0598, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5224651593751757\n",
      "gzsl: unseen=0.4242 , seen=0.5023 , h=0.4600\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5800 loss tensor(2.0321, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5265635449601254\n",
      "gzsl: unseen=0.4338 , seen=0.4996 , h=0.4644\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6000 loss tensor(1.9230, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.51705295364333\n",
      "gzsl: unseen=0.4167 , seen=0.5057 , h=0.4569\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6200 loss tensor(1.9550, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5188940536447479\n",
      "gzsl: unseen=0.4248 , seen=0.5091 , h=0.4631\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6400 loss tensor(2.2680, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5142994991973611\n",
      "gzsl: unseen=0.4138 , seen=0.5161 , h=0.4594\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6600 loss tensor(2.0866, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5291373523047056\n",
      "gzsl: unseen=0.4371 , seen=0.5131 , h=0.4721\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6800 loss tensor(2.1495, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5112032591817754\n",
      "gzsl: unseen=0.4196 , seen=0.5116 , h=0.4611\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7000 loss tensor(1.9852, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5267936545569785\n",
      "gzsl: unseen=0.4278 , seen=0.5257 , h=0.4717\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7200 loss tensor(1.7762, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5181399304642074\n",
      "gzsl: unseen=0.4261 , seen=0.5052 , h=0.4623\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7400 loss tensor(2.2104, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5183513578173681\n",
      "gzsl: unseen=0.4195 , seen=0.5127 , h=0.4614\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7600 loss tensor(1.5036, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.526859195848647\n",
      "gzsl: unseen=0.4180 , seen=0.5251 , h=0.4655\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7800 loss tensor(2.2981, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5346114488828956\n",
      "gzsl: unseen=0.4421 , seen=0.5115 , h=0.4743\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8000 loss tensor(1.7653, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5168905922409986\n",
      "gzsl: unseen=0.4144 , seen=0.5191 , h=0.4609\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8200 loss tensor(1.7233, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.528660967115693\n",
      "gzsl: unseen=0.4285 , seen=0.5199 , h=0.4698\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8400 loss tensor(1.8966, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5431240490289827\n",
      "gzsl: unseen=0.4389 , seen=0.5247 , h=0.4779\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8600 loss tensor(1.6145, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5358920495940069\n",
      "gzsl: unseen=0.4331 , seen=0.5076 , h=0.4674\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8800 loss tensor(2.3692, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5447111686812722\n",
      "gzsl: unseen=0.4401 , seen=0.5224 , h=0.4778\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9000 loss tensor(1.8554, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5456952124170908\n",
      "gzsl: unseen=0.4337 , seen=0.5246 , h=0.4749\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9200 loss tensor(1.3996, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5530158362752928\n",
      "gzsl: unseen=0.4561 , seen=0.5120 , h=0.4824\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9400 loss tensor(2.1632, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5455319020785647\n",
      "gzsl: unseen=0.4521 , seen=0.5181 , h=0.4829\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9600 loss tensor(2.1715, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5519656908445589\n",
      "gzsl: unseen=0.4442 , seen=0.5146 , h=0.4769\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9800 loss tensor(2.0001, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5366644801908059\n",
      "gzsl: unseen=0.4329 , seen=0.5221 , h=0.4733\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10000 loss tensor(1.2028, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.534005756526004\n",
      "gzsl: unseen=0.4319 , seen=0.5096 , h=0.4676\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10200 loss tensor(1.4440, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5475301403686206\n",
      "gzsl: unseen=0.4395 , seen=0.5321 , h=0.4814\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10400 loss tensor(1.8766, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5330711411757231\n",
      "gzsl: unseen=0.4224 , seen=0.5320 , h=0.4709\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10600 loss tensor(1.8090, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5495430690269558\n",
      "gzsl: unseen=0.4457 , seen=0.5242 , h=0.4817\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10800 loss tensor(1.8396, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.545870401077957\n",
      "gzsl: unseen=0.4421 , seen=0.5201 , h=0.4779\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11000 loss tensor(1.7926, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5478124648238264\n",
      "gzsl: unseen=0.4522 , seen=0.5266 , h=0.4866\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 11200 loss tensor(1.5333, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5427315123378509\n",
      "gzsl: unseen=0.4431 , seen=0.5245 , h=0.4804\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11400 loss tensor(2.2160, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5494967217565323\n",
      "gzsl: unseen=0.4483 , seen=0.5263 , h=0.4842\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11600 loss tensor(1.5949, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5555781582939627\n",
      "gzsl: unseen=0.4476 , seen=0.5266 , h=0.4839\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11800 loss tensor(1.8577, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5447432201026811\n",
      "gzsl: unseen=0.4439 , seen=0.5225 , h=0.4800\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12000 loss tensor(1.3865, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.545966213281956\n",
      "gzsl: unseen=0.4394 , seen=0.5176 , h=0.4753\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12200 loss tensor(2.0936, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5395397355413389\n",
      "gzsl: unseen=0.4371 , seen=0.5347 , h=0.4810\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12400 loss tensor(1.2629, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5507227011100416\n",
      "gzsl: unseen=0.4500 , seen=0.5237 , h=0.4841\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12600 loss tensor(1.7136, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5489576533219068\n",
      "gzsl: unseen=0.4485 , seen=0.5241 , h=0.4834\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12800 loss tensor(2.3185, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5453617696496902\n",
      "gzsl: unseen=0.4470 , seen=0.5186 , h=0.4801\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13000 loss tensor(1.9054, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5412333352762606\n",
      "gzsl: unseen=0.4350 , seen=0.5256 , h=0.4761\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13200 loss tensor(2.1124, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5467584604244088\n",
      "gzsl: unseen=0.4474 , seen=0.5237 , h=0.4826\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13400 loss tensor(1.8821, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5470219229414028\n",
      "gzsl: unseen=0.4457 , seen=0.5237 , h=0.4816\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13600 loss tensor(1.6913, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5461749967836677\n",
      "gzsl: unseen=0.4465 , seen=0.5320 , h=0.4855\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13800 loss tensor(1.4951, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5511308620873446\n",
      "gzsl: unseen=0.4520 , seen=0.5321 , h=0.4888\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14000 loss tensor(1.5006, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5484843592777141\n",
      "gzsl: unseen=0.4457 , seen=0.5266 , h=0.4828\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14200 loss tensor(1.4313, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5259868795694893\n",
      "gzsl: unseen=0.4171 , seen=0.5270 , h=0.4656\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14400 loss tensor(1.8637, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5341503133626663\n",
      "gzsl: unseen=0.4396 , seen=0.5252 , h=0.4786\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14600 loss tensor(1.6948, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5314445204986705\n",
      "gzsl: unseen=0.4319 , seen=0.5334 , h=0.4773\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14800 loss tensor(1.8197, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.533417065413111\n",
      "gzsl: unseen=0.4392 , seen=0.5268 , h=0.4790\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15000 loss tensor(1.8837, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5521397829592672\n",
      "gzsl: unseen=0.4544 , seen=0.5266 , h=0.4879\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15200 loss tensor(1.5816, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5557099110296833\n",
      "gzsl: unseen=0.4584 , seen=0.5225 , h=0.4884\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15400 loss tensor(1.4064, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5349372810465342\n",
      "gzsl: unseen=0.4307 , seen=0.5305 , h=0.4754\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15600 loss tensor(1.4766, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5402525017814543\n",
      "gzsl: unseen=0.4461 , seen=0.5251 , h=0.4824\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15800 loss tensor(1.7931, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5539555929262743\n",
      "gzsl: unseen=0.4543 , seen=0.5270 , h=0.4880\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16000 loss tensor(1.3176, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5466399108773997\n",
      "gzsl: unseen=0.4558 , seen=0.5355 , h=0.4924\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16200 loss tensor(1.5042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5459657290204549\n",
      "gzsl: unseen=0.4434 , seen=0.5324 , h=0.4839\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16400 loss tensor(2.0142, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5409200989002507\n",
      "gzsl: unseen=0.4409 , seen=0.5251 , h=0.4793\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16600 loss tensor(2.0210, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.538438325606259\n",
      "gzsl: unseen=0.4391 , seen=0.5246 , h=0.4781\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 16800 loss tensor(1.7257, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5430453140006817\n",
      "gzsl: unseen=0.4496 , seen=0.5283 , h=0.4858\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17000 loss tensor(2.1651, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5543294474787368\n",
      "gzsl: unseen=0.4590 , seen=0.5239 , h=0.4893\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17200 loss tensor(1.5144, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5429892157032635\n",
      "gzsl: unseen=0.4502 , seen=0.5324 , h=0.4878\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17400 loss tensor(1.8845, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.537927984244435\n",
      "gzsl: unseen=0.4423 , seen=0.5296 , h=0.4820\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17600 loss tensor(1.4937, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5468394554447387\n",
      "gzsl: unseen=0.4495 , seen=0.5339 , h=0.4881\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17800 loss tensor(1.5230, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5415079313443009\n",
      "gzsl: unseen=0.4481 , seen=0.5281 , h=0.4848\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18000 loss tensor(1.2126, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5422810823470351\n",
      "gzsl: unseen=0.4454 , seen=0.5282 , h=0.4833\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18200 loss tensor(1.3527, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5400277998763878\n",
      "gzsl: unseen=0.4418 , seen=0.5222 , h=0.4787\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18400 loss tensor(1.7867, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5517465246544346\n",
      "gzsl: unseen=0.4497 , seen=0.5176 , h=0.4813\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18600 loss tensor(1.1997, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5418874736851502\n",
      "gzsl: unseen=0.4481 , seen=0.5258 , h=0.4839\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18800 loss tensor(1.5661, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5403770238869783\n",
      "gzsl: unseen=0.4514 , seen=0.5272 , h=0.4864\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19000 loss tensor(1.4786, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5449800955500138\n",
      "gzsl: unseen=0.4503 , seen=0.5271 , h=0.4857\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19200 loss tensor(1.2681, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.542935937906144\n",
      "gzsl: unseen=0.4512 , seen=0.5259 , h=0.4857\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19400 loss tensor(1.3306, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5403430875110209\n",
      "gzsl: unseen=0.4497 , seen=0.5266 , h=0.4851\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19600 loss tensor(1.3656, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5415755712074979\n",
      "gzsl: unseen=0.4492 , seen=0.5293 , h=0.4859\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19800 loss tensor(1.5856, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.552683290457654\n",
      "gzsl: unseen=0.4574 , seen=0.5290 , h=0.4906\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20000 loss tensor(1.2131, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.538362951474603\n",
      "gzsl: unseen=0.4420 , seen=0.5345 , h=0.4839\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20200 loss tensor(1.6281, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5381837747191551\n",
      "gzsl: unseen=0.4467 , seen=0.5373 , h=0.4878\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20400 loss tensor(1.6663, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5426269788583254\n",
      "gzsl: unseen=0.4453 , seen=0.5368 , h=0.4868\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20600 loss tensor(1.7228, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5310265420147526\n",
      "gzsl: unseen=0.4316 , seen=0.5347 , h=0.4777\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20800 loss tensor(0.9620, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5477113730562194\n",
      "gzsl: unseen=0.4536 , seen=0.5307 , h=0.4891\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21000 loss tensor(1.5126, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5388100572218345\n",
      "gzsl: unseen=0.4465 , seen=0.5388 , h=0.4883\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21200 loss tensor(1.1038, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5420137090849705\n",
      "gzsl: unseen=0.4446 , seen=0.5314 , h=0.4841\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21400 loss tensor(0.9806, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5331683451458062\n",
      "gzsl: unseen=0.4429 , seen=0.5275 , h=0.4815\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21600 loss tensor(1.3720, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5380265085123845\n",
      "gzsl: unseen=0.4481 , seen=0.5344 , h=0.4874\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21800 loss tensor(1.5850, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5361958766881806\n",
      "gzsl: unseen=0.4462 , seen=0.5314 , h=0.4851\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22000 loss tensor(1.5984, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5305517662521929\n",
      "gzsl: unseen=0.4405 , seen=0.5354 , h=0.4833\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22200 loss tensor(1.5279, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5414294049443824\n",
      "gzsl: unseen=0.4485 , seen=0.5371 , h=0.4888\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 22400 loss tensor(0.5548, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5365777123133806\n",
      "gzsl: unseen=0.4485 , seen=0.5268 , h=0.4845\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22600 loss tensor(1.3041, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5322501993600944\n",
      "gzsl: unseen=0.4421 , seen=0.5351 , h=0.4842\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22800 loss tensor(1.4253, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5418081446462113\n",
      "gzsl: unseen=0.4470 , seen=0.5260 , h=0.4833\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23000 loss tensor(1.5743, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5443145542583452\n",
      "gzsl: unseen=0.4505 , seen=0.5387 , h=0.4907\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23200 loss tensor(1.0661, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5397957822724163\n",
      "gzsl: unseen=0.4478 , seen=0.5329 , h=0.4867\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23400 loss tensor(1.1030, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5392759032905311\n",
      "gzsl: unseen=0.4418 , seen=0.5386 , h=0.4854\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23600 loss tensor(1.3296, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5320302257523986\n",
      "gzsl: unseen=0.4424 , seen=0.5249 , h=0.4801\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23800 loss tensor(1.5103, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5415194014418621\n",
      "gzsl: unseen=0.4504 , seen=0.5336 , h=0.4885\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24000 loss tensor(1.2541, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5414884940895626\n",
      "gzsl: unseen=0.4591 , seen=0.5315 , h=0.4926\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24200 loss tensor(1.5410, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5522743178093442\n",
      "gzsl: unseen=0.4574 , seen=0.5273 , h=0.4899\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24400 loss tensor(1.1545, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5461249658806213\n",
      "gzsl: unseen=0.4569 , seen=0.5353 , h=0.4930\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24600 loss tensor(0.9431, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5411835995931406\n",
      "gzsl: unseen=0.4522 , seen=0.5152 , h=0.4816\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24800 loss tensor(1.4444, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5341713696009595\n",
      "gzsl: unseen=0.4463 , seen=0.5240 , h=0.4821\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25000 loss tensor(1.5349, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5288182716033824\n",
      "gzsl: unseen=0.4412 , seen=0.5258 , h=0.4798\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25200 loss tensor(1.3332, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5246094361152376\n",
      "gzsl: unseen=0.4413 , seen=0.5296 , h=0.4814\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25400 loss tensor(1.0542, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.53581775373449\n",
      "gzsl: unseen=0.4471 , seen=0.5305 , h=0.4853\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25600 loss tensor(1.2734, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5375418481334507\n",
      "gzsl: unseen=0.4498 , seen=0.5340 , h=0.4883\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25800 loss tensor(1.3946, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5378458271960461\n",
      "gzsl: unseen=0.4481 , seen=0.5339 , h=0.4872\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26000 loss tensor(1.2035, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5348479256625513\n",
      "gzsl: unseen=0.4396 , seen=0.5316 , h=0.4812\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26200 loss tensor(1.2042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5343745312162778\n",
      "gzsl: unseen=0.4435 , seen=0.5331 , h=0.4842\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26400 loss tensor(0.9664, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5384468948083407\n",
      "gzsl: unseen=0.4536 , seen=0.5295 , h=0.4887\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26600 loss tensor(0.9783, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5425675855662556\n",
      "gzsl: unseen=0.4498 , seen=0.5282 , h=0.4859\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26800 loss tensor(1.7048, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5417508358000633\n",
      "gzsl: unseen=0.4546 , seen=0.5252 , h=0.4874\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27000 loss tensor(1.2919, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5345904022017042\n",
      "gzsl: unseen=0.4464 , seen=0.5330 , h=0.4859\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27200 loss tensor(1.1191, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5280061315634841\n",
      "gzsl: unseen=0.4369 , seen=0.5291 , h=0.4786\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27400 loss tensor(1.5593, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5361148390284733\n",
      "gzsl: unseen=0.4480 , seen=0.5357 , h=0.4879\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27600 loss tensor(0.9718, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5339757648175776\n",
      "gzsl: unseen=0.4465 , seen=0.5214 , h=0.4811\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27800 loss tensor(0.8650, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5323553936449474\n",
      "gzsl: unseen=0.4364 , seen=0.5305 , h=0.4789\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 28000 loss tensor(0.7040, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.525659034848239\n",
      "gzsl: unseen=0.4404 , seen=0.5270 , h=0.4798\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28200 loss tensor(1.0683, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5269588779962432\n",
      "gzsl: unseen=0.4370 , seen=0.5214 , h=0.4755\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28400 loss tensor(1.4561, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5340523497080095\n",
      "gzsl: unseen=0.4373 , seen=0.5293 , h=0.4789\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28600 loss tensor(1.4771, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5350297934773305\n",
      "gzsl: unseen=0.4447 , seen=0.5304 , h=0.4838\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28800 loss tensor(1.1473, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5307712647353969\n",
      "gzsl: unseen=0.4347 , seen=0.5182 , h=0.4728\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29000 loss tensor(1.0072, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5256045693449132\n",
      "gzsl: unseen=0.4390 , seen=0.5264 , h=0.4787\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29200 loss tensor(1.8719, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5383505223061181\n",
      "gzsl: unseen=0.4490 , seen=0.5251 , h=0.4841\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29400 loss tensor(0.7881, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5354289298198907\n",
      "gzsl: unseen=0.4482 , seen=0.5304 , h=0.4858\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29600 loss tensor(1.0880, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.528770827786801\n",
      "gzsl: unseen=0.4380 , seen=0.5225 , h=0.4765\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29800 loss tensor(0.9665, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5233032732023589\n",
      "gzsl: unseen=0.4273 , seen=0.5265 , h=0.4718\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30000 loss tensor(0.9689, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5297269121686586\n",
      "gzsl: unseen=0.4321 , seen=0.5335 , h=0.4775\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30200 loss tensor(1.1366, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5266060889241067\n",
      "gzsl: unseen=0.4404 , seen=0.5272 , h=0.4799\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30400 loss tensor(0.9351, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5308299410872936\n",
      "gzsl: unseen=0.4394 , seen=0.5268 , h=0.4792\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30600 loss tensor(1.2819, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5233144020798774\n",
      "gzsl: unseen=0.4363 , seen=0.5336 , h=0.4801\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30800 loss tensor(1.3493, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5220571115077485\n",
      "gzsl: unseen=0.4297 , seen=0.5262 , h=0.4731\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31000 loss tensor(1.8860, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5266028224432258\n",
      "gzsl: unseen=0.4348 , seen=0.5274 , h=0.4767\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31200 loss tensor(1.4220, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5282172879570539\n",
      "gzsl: unseen=0.4350 , seen=0.5218 , h=0.4745\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31400 loss tensor(0.6481, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5275635590857319\n",
      "gzsl: unseen=0.4381 , seen=0.5217 , h=0.4762\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31600 loss tensor(1.1482, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5282752241061616\n",
      "gzsl: unseen=0.4399 , seen=0.5236 , h=0.4781\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31800 loss tensor(1.1864, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5212582323142417\n",
      "gzsl: unseen=0.4238 , seen=0.5210 , h=0.4674\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32000 loss tensor(0.9261, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5207627521932762\n",
      "gzsl: unseen=0.4293 , seen=0.5264 , h=0.4729\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32200 loss tensor(1.0004, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5170581896748643\n",
      "gzsl: unseen=0.4261 , seen=0.5155 , h=0.4665\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32400 loss tensor(1.0470, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5166671911520141\n",
      "gzsl: unseen=0.4281 , seen=0.5259 , h=0.4720\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32600 loss tensor(1.2595, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5187374562775718\n",
      "gzsl: unseen=0.4324 , seen=0.5234 , h=0.4736\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32800 loss tensor(1.0198, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5163002107813561\n",
      "gzsl: unseen=0.4316 , seen=0.5275 , h=0.4747\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33000 loss tensor(0.9482, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5214728408695283\n",
      "gzsl: unseen=0.4312 , seen=0.5186 , h=0.4709\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33200 loss tensor(0.7744, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5169312797642022\n",
      "gzsl: unseen=0.4345 , seen=0.5210 , h=0.4738\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33400 loss tensor(1.2058, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5181493162208699\n",
      "gzsl: unseen=0.4260 , seen=0.5217 , h=0.4690\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 33600 loss tensor(1.5134, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.527362633202107\n",
      "gzsl: unseen=0.4297 , seen=0.5217 , h=0.4713\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33800 loss tensor(0.8301, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5167021432588562\n",
      "gzsl: unseen=0.4232 , seen=0.5139 , h=0.4642\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34000 loss tensor(0.6507, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.51996532567925\n",
      "gzsl: unseen=0.4269 , seen=0.5179 , h=0.4680\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34200 loss tensor(2.1345, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.510115854759358\n",
      "gzsl: unseen=0.4180 , seen=0.5142 , h=0.4611\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34400 loss tensor(1.5853, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5107238208137925\n",
      "gzsl: unseen=0.4176 , seen=0.5205 , h=0.4634\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34600 loss tensor(0.9268, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5214588630829635\n",
      "gzsl: unseen=0.4373 , seen=0.5166 , h=0.4736\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34800 loss tensor(0.9584, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5265067818139904\n",
      "gzsl: unseen=0.4329 , seen=0.5191 , h=0.4721\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35000 loss tensor(0.8606, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5194094406837424\n",
      "gzsl: unseen=0.4273 , seen=0.5238 , h=0.4707\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35200 loss tensor(0.6746, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5177475543008796\n",
      "gzsl: unseen=0.4265 , seen=0.5207 , h=0.4689\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35400 loss tensor(1.2138, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.522640025300064\n",
      "gzsl: unseen=0.4288 , seen=0.5108 , h=0.4662\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35600 loss tensor(1.0438, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5103935742668206\n",
      "gzsl: unseen=0.4145 , seen=0.5205 , h=0.4615\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35800 loss tensor(0.5506, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.518302988537254\n",
      "gzsl: unseen=0.4294 , seen=0.5073 , h=0.4651\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36000 loss tensor(0.9159, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5117081872855888\n",
      "gzsl: unseen=0.4277 , seen=0.5222 , h=0.4703\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36200 loss tensor(0.6266, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5158047883180709\n",
      "gzsl: unseen=0.4220 , seen=0.5229 , h=0.4671\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36400 loss tensor(0.5398, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5131963701917145\n",
      "gzsl: unseen=0.4210 , seen=0.5173 , h=0.4642\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36600 loss tensor(0.7709, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5227001543314413\n",
      "gzsl: unseen=0.4296 , seen=0.5163 , h=0.4690\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36800 loss tensor(0.9701, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5215397449934177\n",
      "gzsl: unseen=0.4311 , seen=0.5159 , h=0.4697\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37000 loss tensor(1.3652, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.517362989650499\n",
      "gzsl: unseen=0.4285 , seen=0.5132 , h=0.4670\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37200 loss tensor(0.5327, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5176956817653121\n",
      "gzsl: unseen=0.4239 , seen=0.5049 , h=0.4609\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37400 loss tensor(0.8775, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5097981884565964\n",
      "gzsl: unseen=0.4211 , seen=0.5221 , h=0.4662\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37600 loss tensor(0.5869, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5082785758657973\n",
      "gzsl: unseen=0.4160 , seen=0.5144 , h=0.4600\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37800 loss tensor(0.9541, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5168290958088958\n",
      "gzsl: unseen=0.4226 , seen=0.5087 , h=0.4617\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38000 loss tensor(0.5639, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5062581377934543\n",
      "gzsl: unseen=0.4053 , seen=0.5142 , h=0.4533\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38200 loss tensor(1.0835, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5033280328701291\n",
      "gzsl: unseen=0.4178 , seen=0.5210 , h=0.4637\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38400 loss tensor(0.7584, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5128632883361873\n",
      "gzsl: unseen=0.4227 , seen=0.5150 , h=0.4643\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38600 loss tensor(0.8043, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5118296412988628\n",
      "gzsl: unseen=0.4035 , seen=0.5188 , h=0.4539\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38800 loss tensor(0.5732, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5014323622897766\n",
      "gzsl: unseen=0.4046 , seen=0.5190 , h=0.4547\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39000 loss tensor(0.9139, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5117734439121524\n",
      "gzsl: unseen=0.4164 , seen=0.5187 , h=0.4620\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 39200 loss tensor(1.2296, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5157225203127798\n",
      "gzsl: unseen=0.4214 , seen=0.5102 , h=0.4616\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39400 loss tensor(0.5434, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5180673859698595\n",
      "gzsl: unseen=0.4252 , seen=0.5176 , h=0.4669\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39600 loss tensor(0.2370, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5164301831130211\n",
      "gzsl: unseen=0.4308 , seen=0.5110 , h=0.4675\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39800 loss tensor(0.6826, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5074335394411615\n",
      "gzsl: unseen=0.4181 , seen=0.5185 , h=0.4630\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40000 loss tensor(0.6474, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49623894256444345\n",
      "gzsl: unseen=0.3976 , seen=0.5189 , h=0.4502\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40200 loss tensor(0.5102, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5148574067276745\n",
      "gzsl: unseen=0.4184 , seen=0.5125 , h=0.4607\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40400 loss tensor(0.7428, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5169304345908273\n",
      "gzsl: unseen=0.4306 , seen=0.5129 , h=0.4682\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40600 loss tensor(0.3969, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5128629042667208\n",
      "gzsl: unseen=0.4175 , seen=0.5143 , h=0.4609\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40800 loss tensor(0.5607, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5086398304822187\n",
      "gzsl: unseen=0.4117 , seen=0.5070 , h=0.4544\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41000 loss tensor(0.7489, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.507976947850256\n",
      "gzsl: unseen=0.4173 , seen=0.5135 , h=0.4604\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41200 loss tensor(0.6119, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4985508496106006\n",
      "gzsl: unseen=0.4153 , seen=0.5099 , h=0.4578\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41400 loss tensor(1.9401, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5039465246544347\n",
      "gzsl: unseen=0.4059 , seen=0.5138 , h=0.4535\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41600 loss tensor(0.7156, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5105271496258815\n",
      "gzsl: unseen=0.4062 , seen=0.5129 , h=0.4534\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41800 loss tensor(0.9304, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5132324763973717\n",
      "gzsl: unseen=0.4177 , seen=0.5112 , h=0.4597\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42000 loss tensor(0.7501, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5098751767932562\n",
      "gzsl: unseen=0.4194 , seen=0.5160 , h=0.4627\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42200 loss tensor(1.5602, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5155342428858667\n",
      "gzsl: unseen=0.4207 , seen=0.5187 , h=0.4646\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42400 loss tensor(0.4564, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.51099167975517\n",
      "gzsl: unseen=0.4191 , seen=0.5156 , h=0.4624\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42600 loss tensor(1.4853, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5012262330893122\n",
      "gzsl: unseen=0.4088 , seen=0.5020 , h=0.4506\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42800 loss tensor(0.3883, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5023638533079388\n",
      "gzsl: unseen=0.4111 , seen=0.5084 , h=0.4546\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43000 loss tensor(0.3297, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5047492732664232\n",
      "gzsl: unseen=0.4080 , seen=0.5187 , h=0.4568\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43200 loss tensor(0.9107, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5101764775043152\n",
      "gzsl: unseen=0.4116 , seen=0.5133 , h=0.4568\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43400 loss tensor(0.5075, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5131151134538263\n",
      "gzsl: unseen=0.4076 , seen=0.5152 , h=0.4551\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43600 loss tensor(0.8543, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.514500950669076\n",
      "gzsl: unseen=0.4063 , seen=0.5132 , h=0.4536\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43800 loss tensor(0.5710, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5057356092888728\n",
      "gzsl: unseen=0.3942 , seen=0.5199 , h=0.4484\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44000 loss tensor(0.5229, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5026194822571354\n",
      "gzsl: unseen=0.4100 , seen=0.5172 , h=0.4574\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44200 loss tensor(0.5285, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.502183057673959\n",
      "gzsl: unseen=0.4064 , seen=0.5152 , h=0.4544\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44400 loss tensor(0.9743, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5140018401096862\n",
      "gzsl: unseen=0.4169 , seen=0.5134 , h=0.4602\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44600 loss tensor(0.6830, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5067428881246708\n",
      "gzsl: unseen=0.4125 , seen=0.5172 , h=0.4590\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 44800 loss tensor(0.3920, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5069995512888172\n",
      "gzsl: unseen=0.4043 , seen=0.5094 , h=0.4508\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45000 loss tensor(0.5728, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5124051583669539\n",
      "gzsl: unseen=0.4107 , seen=0.5096 , h=0.4548\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45200 loss tensor(0.4377, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5150359181092902\n",
      "gzsl: unseen=0.4177 , seen=0.5126 , h=0.4603\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45400 loss tensor(0.1953, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5111345934529651\n",
      "gzsl: unseen=0.4168 , seen=0.5148 , h=0.4606\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45600 loss tensor(0.2773, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5013488986490354\n",
      "gzsl: unseen=0.4055 , seen=0.5288 , h=0.4590\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45800 loss tensor(0.1866, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5099385343396646\n",
      "gzsl: unseen=0.4056 , seen=0.5247 , h=0.4575\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46000 loss tensor(0.6054, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48977251335499966\n",
      "gzsl: unseen=0.3878 , seen=0.5179 , h=0.4435\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46200 loss tensor(0.7677, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5004853036454043\n",
      "gzsl: unseen=0.4027 , seen=0.5155 , h=0.4522\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46400 loss tensor(0.5427, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49734559409728185\n",
      "gzsl: unseen=0.4004 , seen=0.5154 , h=0.4507\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46600 loss tensor(0.5976, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.501549344944687\n",
      "gzsl: unseen=0.3986 , seen=0.5200 , h=0.4513\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46800 loss tensor(0.5208, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5111894198681645\n",
      "gzsl: unseen=0.4123 , seen=0.5077 , h=0.4551\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47000 loss tensor(0.6522, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4969520417802885\n",
      "gzsl: unseen=0.3994 , seen=0.5160 , h=0.4503\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47200 loss tensor(0.3336, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49402610963466137\n",
      "gzsl: unseen=0.3914 , seen=0.5180 , h=0.4459\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47400 loss tensor(0.5626, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5010074044434221\n",
      "gzsl: unseen=0.4019 , seen=0.5155 , h=0.4517\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47600 loss tensor(0.6434, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5066654625243457\n",
      "gzsl: unseen=0.3977 , seen=0.5186 , h=0.4502\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47800 loss tensor(0.6528, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5096107654450904\n",
      "gzsl: unseen=0.4060 , seen=0.5177 , h=0.4551\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48000 loss tensor(0.2282, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5072387050021976\n",
      "gzsl: unseen=0.4004 , seen=0.5164 , h=0.4511\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48200 loss tensor(0.3646, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5102002062128513\n",
      "gzsl: unseen=0.4025 , seen=0.5217 , h=0.4544\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48400 loss tensor(0.3153, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5066957384252732\n",
      "gzsl: unseen=0.4102 , seen=0.5094 , h=0.4545\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48600 loss tensor(0.4338, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5162297080935525\n",
      "gzsl: unseen=0.4111 , seen=0.5229 , h=0.4603\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48800 loss tensor(0.8292, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5035348157868619\n",
      "gzsl: unseen=0.4064 , seen=0.5167 , h=0.4549\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49000 loss tensor(0.2924, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49493119438042404\n",
      "gzsl: unseen=0.3973 , seen=0.5074 , h=0.4456\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49200 loss tensor(0.1399, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4989289679957865\n",
      "gzsl: unseen=0.3946 , seen=0.5194 , h=0.4485\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49400 loss tensor(0.1044, device='cuda:0')\n",
      "loss_zero_number=  1\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4942173029753569\n",
      "gzsl: unseen=0.4010 , seen=0.5087 , h=0.4484\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49600 loss tensor(0.1851, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5015384917002872\n",
      "gzsl: unseen=0.4034 , seen=0.5092 , h=0.4502\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49800 loss tensor(0.4160, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5017850477041164\n",
      "gzsl: unseen=0.4002 , seen=0.5128 , h=0.4496\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50000 loss tensor(0.3833, device='cuda:0')\n",
      "loss_zero_number=  2\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5019248044601209\n",
      "gzsl: unseen=0.4039 , seen=0.5163 , h=0.4532\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50200 loss tensor(0.3390, device='cuda:0')\n",
      "loss_zero_number=  1\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5010070193762364\n",
      "gzsl: unseen=0.3898 , seen=0.5202 , h=0.4457\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 50400 loss tensor(0.1752, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4975889022093184\n",
      "gzsl: unseen=0.3856 , seen=0.5194 , h=0.4426\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50600 loss tensor(0.3966, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49065774805274054\n",
      "gzsl: unseen=0.3764 , seen=0.5218 , h=0.4373\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50800 loss tensor(0.9568, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5002791986002522\n",
      "gzsl: unseen=0.3919 , seen=0.5243 , h=0.4485\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51000 loss tensor(0.5703, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4964299455507753\n",
      "gzsl: unseen=0.3954 , seen=0.5126 , h=0.4464\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51200 loss tensor(0.3841, device='cuda:0')\n",
      "loss_zero_number=  1\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4952940295944586\n",
      "gzsl: unseen=0.3907 , seen=0.5172 , h=0.4452\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51400 loss tensor(0.3672, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49769644165993215\n",
      "gzsl: unseen=0.3945 , seen=0.5190 , h=0.4482\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51600 loss tensor(0.3283, device='cuda:0')\n",
      "loss_zero_number=  2\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5021526724439872\n",
      "gzsl: unseen=0.3916 , seen=0.5227 , h=0.4478\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51800 loss tensor(0.7348, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4986237690374055\n",
      "gzsl: unseen=0.3858 , seen=0.5107 , h=0.4395\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52000 loss tensor(0.1638, device='cuda:0')\n",
      "loss_zero_number=  1\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5086024950337203\n",
      "gzsl: unseen=0.3996 , seen=0.5127 , h=0.4492\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52200 loss tensor(0.2548, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5054288779384806\n",
      "gzsl: unseen=0.3945 , seen=0.5118 , h=0.4456\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52400 loss tensor(0.3014, device='cuda:0')\n",
      "loss_zero_number=  2\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5017729550821464\n",
      "gzsl: unseen=0.3975 , seen=0.5142 , h=0.4484\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52600 loss tensor(0.3968, device='cuda:0')\n",
      "loss_zero_number=  1\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5113551607562292\n",
      "gzsl: unseen=0.4049 , seen=0.5148 , h=0.4533\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52800 loss tensor(0.7914, device='cuda:0')\n",
      "loss_zero_number=  1\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49795165671310265\n",
      "gzsl: unseen=0.3901 , seen=0.5193 , h=0.4455\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53000 loss tensor(0.7190, device='cuda:0')\n",
      "loss_zero_number=  1\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4986319541700209\n",
      "gzsl: unseen=0.3908 , seen=0.5135 , h=0.4438\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53200 loss tensor(0.3911, device='cuda:0')\n",
      "loss_zero_number=  3\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4949021247747911\n",
      "gzsl: unseen=0.3901 , seen=0.5205 , h=0.4459\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53400 loss tensor(0.4160, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48815072158744505\n",
      "gzsl: unseen=0.3792 , seen=0.5188 , h=0.4382\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53600 loss tensor(0.3055, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4941173790120792\n",
      "gzsl: unseen=0.3904 , seen=0.5117 , h=0.4429\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53800 loss tensor(0.1859, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48953718542300423\n",
      "gzsl: unseen=0.3807 , seen=0.5221 , h=0.4403\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54000 loss tensor(0.3632, device='cuda:0')\n",
      "loss_zero_number=  1\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5074702443309844\n",
      "gzsl: unseen=0.3922 , seen=0.5106 , h=0.4437\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54200 loss tensor(0.1627, device='cuda:0')\n",
      "loss_zero_number=  4\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5051176016610452\n",
      "gzsl: unseen=0.3989 , seen=0.5147 , h=0.4495\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54400 loss tensor(0.3391, device='cuda:0')\n",
      "loss_zero_number=  3\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5047180766805139\n",
      "gzsl: unseen=0.4020 , seen=0.5172 , h=0.4524\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54600 loss tensor(0.2337, device='cuda:0')\n",
      "loss_zero_number=  4\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5095040330969789\n",
      "gzsl: unseen=0.3995 , seen=0.5191 , h=0.4515\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54800 loss tensor(0.1988, device='cuda:0')\n",
      "loss_zero_number=  3\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49903555262891186\n",
      "gzsl: unseen=0.4010 , seen=0.5106 , h=0.4492\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55000 loss tensor(0.8746, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49583065366900814\n",
      "gzsl: unseen=0.3883 , seen=0.5134 , h=0.4422\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55200 loss tensor(0.1992, device='cuda:0')\n",
      "loss_zero_number=  2\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4969336111194254\n",
      "gzsl: unseen=0.3923 , seen=0.5111 , h=0.4439\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55400 loss tensor(0.1982, device='cuda:0')\n",
      "loss_zero_number=  2\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49693025925476664\n",
      "gzsl: unseen=0.3838 , seen=0.5170 , h=0.4405\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55600 loss tensor(0.4726, device='cuda:0')\n",
      "loss_zero_number=  7\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5046229100534935\n",
      "gzsl: unseen=0.3948 , seen=0.5183 , h=0.4482\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55800 loss tensor(0.2469, device='cuda:0')\n",
      "loss_zero_number=  3\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49755383132135345\n",
      "gzsl: unseen=0.3924 , seen=0.5207 , h=0.4475\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 56000 loss tensor(0.2338, device='cuda:0')\n",
      "loss_zero_number=  4\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4983214190930941\n",
      "gzsl: unseen=0.3946 , seen=0.5057 , h=0.4433\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56200 loss tensor(0.1098, device='cuda:0')\n",
      "loss_zero_number=  3\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49729945697807587\n",
      "gzsl: unseen=0.3880 , seen=0.5188 , h=0.4440\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56400 loss tensor(0.3470, device='cuda:0')\n",
      "loss_zero_number=  11\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5041637724926654\n",
      "gzsl: unseen=0.3889 , seen=0.5152 , h=0.4433\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56600 loss tensor(0.3935, device='cuda:0')\n",
      "loss_zero_number=  5\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4962848331944402\n",
      "gzsl: unseen=0.3791 , seen=0.5100 , h=0.4349\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56800 loss tensor(1.00000e-02 *\n",
      "       7.8023, device='cuda:0')\n",
      "loss_zero_number=  5\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48993622125846026\n",
      "gzsl: unseen=0.3832 , seen=0.5156 , h=0.4396\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57000 loss tensor(0.4871, device='cuda:0')\n",
      "loss_zero_number=  3\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4968771519101338\n",
      "gzsl: unseen=0.3942 , seen=0.5201 , h=0.4485\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57200 loss tensor(0.3098, device='cuda:0')\n",
      "loss_zero_number=  2\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4873479729754567\n",
      "gzsl: unseen=0.3724 , seen=0.5243 , h=0.4355\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57400 loss tensor(0.3416, device='cuda:0')\n",
      "loss_zero_number=  4\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49668833723756706\n",
      "gzsl: unseen=0.3853 , seen=0.5190 , h=0.4423\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57600 loss tensor(1.00000e-02 *\n",
      "       3.6672, device='cuda:0')\n",
      "loss_zero_number=  5\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48955324786553683\n",
      "gzsl: unseen=0.3847 , seen=0.5202 , h=0.4423\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57800 loss tensor(0.3369, device='cuda:0')\n",
      "loss_zero_number=  5\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48273930804482185\n",
      "gzsl: unseen=0.3764 , seen=0.5204 , h=0.4368\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  7\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49269992133770013\n",
      "gzsl: unseen=0.3781 , seen=0.5326 , h=0.4422\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58200 loss tensor(0.1472, device='cuda:0')\n",
      "loss_zero_number=  11\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5010227198041529\n",
      "gzsl: unseen=0.3868 , seen=0.5217 , h=0.4443\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58400 loss tensor(0.3487, device='cuda:0')\n",
      "loss_zero_number=  12\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5042826068098026\n",
      "gzsl: unseen=0.3899 , seen=0.5261 , h=0.4479\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58600 loss tensor(0.1131, device='cuda:0')\n",
      "loss_zero_number=  10\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5014092700212094\n",
      "gzsl: unseen=0.3902 , seen=0.5146 , h=0.4438\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58800 loss tensor(0.3578, device='cuda:0')\n",
      "loss_zero_number=  8\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49872522192693225\n",
      "gzsl: unseen=0.3853 , seen=0.5217 , h=0.4432\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59000 loss tensor(1.3959, device='cuda:0')\n",
      "loss_zero_number=  11\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49906082438930377\n",
      "gzsl: unseen=0.3900 , seen=0.5249 , h=0.4475\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59200 loss tensor(0.1066, device='cuda:0')\n",
      "loss_zero_number=  14\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4963818043808284\n",
      "gzsl: unseen=0.3810 , seen=0.5168 , h=0.4386\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59400 loss tensor(0.1442, device='cuda:0')\n",
      "loss_zero_number=  13\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4921617363573684\n",
      "gzsl: unseen=0.3713 , seen=0.5222 , h=0.4340\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59600 loss tensor(0.1253, device='cuda:0')\n",
      "loss_zero_number=  14\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49400165889233194\n",
      "gzsl: unseen=0.3798 , seen=0.5171 , h=0.4379\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59800 loss tensor(1.00000e-02 *\n",
      "       9.4172, device='cuda:0')\n",
      "loss_zero_number=  14\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49319333670457477\n",
      "gzsl: unseen=0.3797 , seen=0.5108 , h=0.4356\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60000 loss tensor(0.2724, device='cuda:0')\n",
      "loss_zero_number=  17\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49418273462291196\n",
      "gzsl: unseen=0.3773 , seen=0.5166 , h=0.4361\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60200 loss tensor(0.1434, device='cuda:0')\n",
      "loss_zero_number=  9\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49419227822928957\n",
      "gzsl: unseen=0.3818 , seen=0.5161 , h=0.4389\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60400 loss tensor(0.3360, device='cuda:0')\n",
      "loss_zero_number=  15\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4926590728140885\n",
      "gzsl: unseen=0.3758 , seen=0.5192 , h=0.4360\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60600 loss tensor(1.00000e-02 *\n",
      "       1.5007, device='cuda:0')\n",
      "loss_zero_number=  13\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4925977665263032\n",
      "gzsl: unseen=0.3880 , seen=0.5196 , h=0.4443\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60800 loss tensor(1.00000e-02 *\n",
      "       5.8707, device='cuda:0')\n",
      "loss_zero_number=  19\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4990082923611976\n",
      "gzsl: unseen=0.3909 , seen=0.5141 , h=0.4441\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61000 loss tensor(0.2478, device='cuda:0')\n",
      "loss_zero_number=  18\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4950002731125642\n",
      "gzsl: unseen=0.3900 , seen=0.5143 , h=0.4436\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61200 loss tensor(1.00000e-02 *\n",
      "       6.1121, device='cuda:0')\n",
      "loss_zero_number=  20\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.491234507964164\n",
      "gzsl: unseen=0.3798 , seen=0.5202 , h=0.4390\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 61400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  21\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4929123415792218\n",
      "gzsl: unseen=0.3842 , seen=0.5170 , h=0.4408\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61600 loss tensor(0.1654, device='cuda:0')\n",
      "loss_zero_number=  21\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.500014269383194\n",
      "gzsl: unseen=0.3910 , seen=0.5202 , h=0.4464\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61800 loss tensor(0.1281, device='cuda:0')\n",
      "loss_zero_number=  30\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4907200897632411\n",
      "gzsl: unseen=0.3744 , seen=0.5219 , h=0.4360\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62000 loss tensor(0.2721, device='cuda:0')\n",
      "loss_zero_number=  29\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4906598892636464\n",
      "gzsl: unseen=0.3879 , seen=0.5172 , h=0.4433\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62200 loss tensor(0.3013, device='cuda:0')\n",
      "loss_zero_number=  29\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49179176025537413\n",
      "gzsl: unseen=0.3830 , seen=0.5215 , h=0.4417\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62400 loss tensor(0.3326, device='cuda:0')\n",
      "loss_zero_number=  25\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49005566460453814\n",
      "gzsl: unseen=0.3741 , seen=0.5319 , h=0.4393\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62600 loss tensor(0.1988, device='cuda:0')\n",
      "loss_zero_number=  28\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49029372623524226\n",
      "gzsl: unseen=0.3679 , seen=0.5145 , h=0.4290\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62800 loss tensor(1.7732, device='cuda:0')\n",
      "loss_zero_number=  22\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5091217694501463\n",
      "gzsl: unseen=0.3886 , seen=0.5243 , h=0.4464\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63000 loss tensor(1.00000e-02 *\n",
      "       4.5626, device='cuda:0')\n",
      "loss_zero_number=  28\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49951150097435165\n",
      "gzsl: unseen=0.3949 , seen=0.5259 , h=0.4511\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63200 loss tensor(1.00000e-02 *\n",
      "       9.4780, device='cuda:0')\n",
      "loss_zero_number=  33\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49754082762401525\n",
      "gzsl: unseen=0.3862 , seen=0.5183 , h=0.4426\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63400 loss tensor(1.00000e-02 *\n",
      "       8.1051, device='cuda:0')\n",
      "loss_zero_number=  30\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48960827713284844\n",
      "gzsl: unseen=0.3687 , seen=0.5198 , h=0.4314\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63600 loss tensor(0.3046, device='cuda:0')\n",
      "loss_zero_number=  37\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4932231232503808\n",
      "gzsl: unseen=0.3866 , seen=0.5145 , h=0.4415\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63800 loss tensor(0.1641, device='cuda:0')\n",
      "loss_zero_number=  29\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5060907159056955\n",
      "gzsl: unseen=0.3994 , seen=0.5147 , h=0.4498\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64000 loss tensor(0.2746, device='cuda:0')\n",
      "loss_zero_number=  35\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4884889691090312\n",
      "gzsl: unseen=0.3611 , seen=0.5213 , h=0.4266\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  36\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4989596469228496\n",
      "gzsl: unseen=0.3886 , seen=0.5245 , h=0.4464\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64400 loss tensor(0.4636, device='cuda:0')\n",
      "loss_zero_number=  38\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4939569983978727\n",
      "gzsl: unseen=0.3874 , seen=0.5100 , h=0.4403\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64600 loss tensor(0.1893, device='cuda:0')\n",
      "loss_zero_number=  38\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4924913475671137\n",
      "gzsl: unseen=0.3847 , seen=0.5137 , h=0.4400\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  45\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48778459683996006\n",
      "gzsl: unseen=0.3786 , seen=0.5167 , h=0.4370\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  40\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.500776544299005\n",
      "gzsl: unseen=0.3955 , seen=0.5224 , h=0.4502\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  41\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.498766417446857\n",
      "gzsl: unseen=0.3799 , seen=0.5244 , h=0.4406\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65400 loss tensor(0.1164, device='cuda:0')\n",
      "loss_zero_number=  52\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49658882606757293\n",
      "gzsl: unseen=0.3706 , seen=0.5262 , h=0.4349\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  48\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49206838332170205\n",
      "gzsl: unseen=0.3807 , seen=0.5274 , h=0.4422\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65800 loss tensor(1.00000e-02 *\n",
      "       7.8858, device='cuda:0')\n",
      "loss_zero_number=  49\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.501689358849745\n",
      "gzsl: unseen=0.3844 , seen=0.5201 , h=0.4420\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  49\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49160487816533055\n",
      "gzsl: unseen=0.3749 , seen=0.5315 , h=0.4397\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  49\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4938750291832931\n",
      "gzsl: unseen=0.3805 , seen=0.5280 , h=0.4423\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  51\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49355461983476717\n",
      "gzsl: unseen=0.3806 , seen=0.5128 , h=0.4369\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66600 loss tensor(1.00000e-02 *\n",
      "       3.0103, device='cuda:0')\n",
      "loss_zero_number=  49\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48421597821400864\n",
      "gzsl: unseen=0.3648 , seen=0.5168 , h=0.4277\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  52\n",
      "Testing...\n",
      "class num: 50\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48525132463006926\n",
      "gzsl: unseen=0.3705 , seen=0.5191 , h=0.4324\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67000 loss tensor(1.00000e-02 *\n",
      "       4.9592, device='cuda:0')\n",
      "loss_zero_number=  59\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4980796204255221\n",
      "gzsl: unseen=0.3837 , seen=0.5237 , h=0.4429\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67200 loss tensor(1.00000e-02 *\n",
      "       7.1477, device='cuda:0')\n",
      "loss_zero_number=  62\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49793966428316744\n",
      "gzsl: unseen=0.3838 , seen=0.5229 , h=0.4427\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  64\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48273874774659814\n",
      "gzsl: unseen=0.3807 , seen=0.5139 , h=0.4374\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67600 loss tensor(0.1358, device='cuda:0')\n",
      "loss_zero_number=  55\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48866929875552884\n",
      "gzsl: unseen=0.3636 , seen=0.5214 , h=0.4284\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67800 loss tensor(0.1714, device='cuda:0')\n",
      "loss_zero_number=  59\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4901505267695998\n",
      "gzsl: unseen=0.3725 , seen=0.5230 , h=0.4351\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68000 loss tensor(0.1821, device='cuda:0')\n",
      "loss_zero_number=  71\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4860224304655202\n",
      "gzsl: unseen=0.3704 , seen=0.5224 , h=0.4335\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68200 loss tensor(1.00000e-02 *\n",
      "       2.4600, device='cuda:0')\n",
      "loss_zero_number=  60\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4832829492376111\n",
      "gzsl: unseen=0.3717 , seen=0.5205 , h=0.4337\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68400 loss tensor(0.6327, device='cuda:0')\n",
      "loss_zero_number=  58\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4894644850743799\n",
      "gzsl: unseen=0.3666 , seen=0.5244 , h=0.4315\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68600 loss tensor(0.1805, device='cuda:0')\n",
      "loss_zero_number=  78\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49728853195038913\n",
      "gzsl: unseen=0.3816 , seen=0.5075 , h=0.4356\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  71\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49786109057034367\n",
      "gzsl: unseen=0.3781 , seen=0.5182 , h=0.4372\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69000 loss tensor(0.1572, device='cuda:0')\n",
      "loss_zero_number=  64\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49847494847304297\n",
      "gzsl: unseen=0.3794 , seen=0.5242 , h=0.4402\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  80\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4840372613547034\n",
      "gzsl: unseen=0.3753 , seen=0.5168 , h=0.4349\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  79\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4923970827734289\n",
      "gzsl: unseen=0.3984 , seen=0.5174 , h=0.4501\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69600 loss tensor(1.00000e-02 *\n",
      "       9.3624, device='cuda:0')\n",
      "loss_zero_number=  76\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49293353497768\n",
      "gzsl: unseen=0.3800 , seen=0.5274 , h=0.4417\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  83\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4939138565899106\n",
      "gzsl: unseen=0.3844 , seen=0.5218 , h=0.4427\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  71\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5044618076155398\n",
      "gzsl: unseen=0.3855 , seen=0.5208 , h=0.4431\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  90\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4937203514807994\n",
      "gzsl: unseen=0.3786 , seen=0.5205 , h=0.4384\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  67\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49186240619468236\n",
      "gzsl: unseen=0.3784 , seen=0.5204 , h=0.4382\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70600 loss tensor(0.1260, device='cuda:0')\n",
      "loss_zero_number=  80\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49256242903720604\n",
      "gzsl: unseen=0.3856 , seen=0.5165 , h=0.4415\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  97\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4884117476736071\n",
      "gzsl: unseen=0.3719 , seen=0.5181 , h=0.4330\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  91\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4796888593598947\n",
      "gzsl: unseen=0.3590 , seen=0.5192 , h=0.4245\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  80\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4906163527263734\n",
      "gzsl: unseen=0.3722 , seen=0.5290 , h=0.4370\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71400 loss tensor(0.1631, device='cuda:0')\n",
      "loss_zero_number=  80\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4971126734522089\n",
      "gzsl: unseen=0.3872 , seen=0.5158 , h=0.4423\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  101\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49600006905268645\n",
      "gzsl: unseen=0.3769 , seen=0.5263 , h=0.4393\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  92\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4881122608689715\n",
      "gzsl: unseen=0.3734 , seen=0.5227 , h=0.4356\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  95\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49728360873015\n",
      "gzsl: unseen=0.3855 , seen=0.5207 , h=0.4430\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72200 loss tensor(1.00000e-02 *\n",
      "       1.3897, device='cuda:0')\n",
      "loss_zero_number=  90\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4941776073427948\n",
      "gzsl: unseen=0.3794 , seen=0.5218 , h=0.4393\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 72400 loss tensor(1.00000e-02 *\n",
      "       8.8139, device='cuda:0')\n",
      "loss_zero_number=  98\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49283446999831443\n",
      "gzsl: unseen=0.3896 , seen=0.5138 , h=0.4432\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  94\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4798625813206969\n",
      "gzsl: unseen=0.3679 , seen=0.5169 , h=0.4299\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72800 loss tensor(1.00000e-02 *\n",
      "       8.2140, device='cuda:0')\n",
      "loss_zero_number=  88\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4825757738495639\n",
      "gzsl: unseen=0.3691 , seen=0.5222 , h=0.4325\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  119\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4890230563506679\n",
      "gzsl: unseen=0.3741 , seen=0.5275 , h=0.4378\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73200 loss tensor(0.2069, device='cuda:0')\n",
      "loss_zero_number=  116\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48203950753619496\n",
      "gzsl: unseen=0.3513 , seen=0.5304 , h=0.4227\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73400 loss tensor(0.1890, device='cuda:0')\n",
      "loss_zero_number=  89\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4941305912327769\n",
      "gzsl: unseen=0.3745 , seen=0.5169 , h=0.4344\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  109\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4842145343564684\n",
      "gzsl: unseen=0.3693 , seen=0.5234 , h=0.4331\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73800 loss tensor(0.1502, device='cuda:0')\n",
      "loss_zero_number=  118\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4963596466077802\n",
      "gzsl: unseen=0.3833 , seen=0.5257 , h=0.4433\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74000 loss tensor(0.1391, device='cuda:0')\n",
      "loss_zero_number=  98\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4914934033942414\n",
      "gzsl: unseen=0.3667 , seen=0.5240 , h=0.4315\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74200 loss tensor(1.00000e-02 *\n",
      "       1.1259, device='cuda:0')\n",
      "loss_zero_number=  121\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48398318548706826\n",
      "gzsl: unseen=0.3676 , seen=0.5226 , h=0.4316\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  100\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5021352539432234\n",
      "gzsl: unseen=0.3784 , seen=0.5183 , h=0.4374\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  115\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4872437804009047\n",
      "gzsl: unseen=0.3696 , seen=0.5155 , h=0.4305\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  111\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.502834275075446\n",
      "gzsl: unseen=0.3823 , seen=0.5275 , h=0.4433\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  108\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49390663052821887\n",
      "gzsl: unseen=0.3685 , seen=0.5302 , h=0.4348\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  117\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4930018720892192\n",
      "gzsl: unseen=0.3707 , seen=0.5343 , h=0.4377\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  122\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4998675380433042\n",
      "gzsl: unseen=0.3882 , seen=0.5172 , h=0.4435\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75600 loss tensor(0.1337, device='cuda:0')\n",
      "loss_zero_number=  125\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4953858777541651\n",
      "gzsl: unseen=0.3837 , seen=0.5127 , h=0.4389\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  125\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49429544409804327\n",
      "gzsl: unseen=0.3785 , seen=0.5295 , h=0.4414\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  128\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49168117350708357\n",
      "gzsl: unseen=0.3643 , seen=0.5200 , h=0.4284\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76200 loss tensor(1.00000e-02 *\n",
      "       9.4127, device='cuda:0')\n",
      "loss_zero_number=  122\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49412948554960956\n",
      "gzsl: unseen=0.3722 , seen=0.5220 , h=0.4345\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  125\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4894404089494382\n",
      "gzsl: unseen=0.3806 , seen=0.5119 , h=0.4366\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  134\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4921679416995783\n",
      "gzsl: unseen=0.3823 , seen=0.5162 , h=0.4393\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76800 loss tensor(1.00000e-02 *\n",
      "       5.7383, device='cuda:0')\n",
      "loss_zero_number=  121\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49984386567965955\n",
      "gzsl: unseen=0.3852 , seen=0.5154 , h=0.4409\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  128\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4925688905307499\n",
      "gzsl: unseen=0.3732 , seen=0.5261 , h=0.4367\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77200 loss tensor(1.00000e-02 *\n",
      "       7.1322, device='cuda:0')\n",
      "loss_zero_number=  131\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48690094163708947\n",
      "gzsl: unseen=0.3632 , seen=0.5154 , h=0.4261\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77400 loss tensor(1.00000e-02 *\n",
      "       7.3232, device='cuda:0')\n",
      "loss_zero_number=  113\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4933185685561897\n",
      "gzsl: unseen=0.3827 , seen=0.5218 , h=0.4415\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77600 loss tensor(0.1085, device='cuda:0')\n",
      "loss_zero_number=  121\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49873801211231383\n",
      "gzsl: unseen=0.3760 , seen=0.5207 , h=0.4367\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 77800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  127\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49916827388763463\n",
      "gzsl: unseen=0.3823 , seen=0.5159 , h=0.4392\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  110\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.502128672460791\n",
      "gzsl: unseen=0.3908 , seen=0.5279 , h=0.4491\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78200 loss tensor(1.00000e-02 *\n",
      "       5.8328, device='cuda:0')\n",
      "loss_zero_number=  122\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48505393020059934\n",
      "gzsl: unseen=0.3693 , seen=0.5274 , h=0.4344\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78400 loss tensor(0.1421, device='cuda:0')\n",
      "loss_zero_number=  139\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4951375185037568\n",
      "gzsl: unseen=0.3772 , seen=0.5195 , h=0.4371\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  135\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49715075965831784\n",
      "gzsl: unseen=0.3837 , seen=0.5239 , h=0.4430\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78800 loss tensor(0.1478, device='cuda:0')\n",
      "loss_zero_number=  138\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5016367206432875\n",
      "gzsl: unseen=0.3866 , seen=0.5167 , h=0.4423\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  133\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4881146348635724\n",
      "gzsl: unseen=0.3726 , seen=0.5288 , h=0.4372\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79200 loss tensor(1.00000e-02 *\n",
      "       3.5812, device='cuda:0')\n",
      "loss_zero_number=  132\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.47934034803604186\n",
      "gzsl: unseen=0.3558 , seen=0.5224 , h=0.4233\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  140\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49350669611514314\n",
      "gzsl: unseen=0.3657 , seen=0.5279 , h=0.4321\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  125\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49595411598645833\n",
      "gzsl: unseen=0.3722 , seen=0.5250 , h=0.4356\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  141\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49466158396885435\n",
      "gzsl: unseen=0.3785 , seen=0.5251 , h=0.4399\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  118\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4911059748165115\n",
      "gzsl: unseen=0.3789 , seen=0.5136 , h=0.4361\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80200 loss tensor(0.2239, device='cuda:0')\n",
      "loss_zero_number=  129\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4885018445731678\n",
      "gzsl: unseen=0.3678 , seen=0.5322 , h=0.4350\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80400 loss tensor(0.1810, device='cuda:0')\n",
      "loss_zero_number=  137\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49707232777918686\n",
      "gzsl: unseen=0.3845 , seen=0.5127 , h=0.4394\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80600 loss tensor(1.00000e-02 *\n",
      "       5.5311, device='cuda:0')\n",
      "loss_zero_number=  119\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4927959619669356\n",
      "gzsl: unseen=0.3810 , seen=0.5223 , h=0.4406\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  140\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4963805751379872\n",
      "gzsl: unseen=0.3754 , seen=0.5188 , h=0.4356\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81000 loss tensor(1.00000e-02 *\n",
      "       1.9253, device='cuda:0')\n",
      "loss_zero_number=  132\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49669401578392125\n",
      "gzsl: unseen=0.3742 , seen=0.5286 , h=0.4382\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  135\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49101831424275993\n",
      "gzsl: unseen=0.3687 , seen=0.5277 , h=0.4341\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  134\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48823602297485275\n",
      "gzsl: unseen=0.3593 , seen=0.5327 , h=0.4292\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  151\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49423150320084147\n",
      "gzsl: unseen=0.3760 , seen=0.5180 , h=0.4357\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81800 loss tensor(1.00000e-02 *\n",
      "       9.6395, device='cuda:0')\n",
      "loss_zero_number=  133\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49133013133663417\n",
      "gzsl: unseen=0.3538 , seen=0.5343 , h=0.4257\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  146\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5081396170752853\n",
      "gzsl: unseen=0.3850 , seen=0.5252 , h=0.4443\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  154\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4979774794246625\n",
      "gzsl: unseen=0.3824 , seen=0.5128 , h=0.4381\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82400 loss tensor(1.00000e-03 *\n",
      "       3.8996, device='cuda:0')\n",
      "loss_zero_number=  146\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49638340467027214\n",
      "gzsl: unseen=0.3795 , seen=0.5276 , h=0.4415\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82600 loss tensor(0.1007, device='cuda:0')\n",
      "loss_zero_number=  135\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49009782743969965\n",
      "gzsl: unseen=0.3669 , seen=0.5235 , h=0.4315\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  143\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4829264128888546\n",
      "gzsl: unseen=0.3659 , seen=0.5238 , h=0.4308\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83000 loss tensor(1.00000e-02 *\n",
      "       5.4175, device='cuda:0')\n",
      "loss_zero_number=  152\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4915634540101232\n",
      "gzsl: unseen=0.3736 , seen=0.5238 , h=0.4362\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 83200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  140\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49429277630132806\n",
      "gzsl: unseen=0.3748 , seen=0.5200 , h=0.4356\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83400 loss tensor(0.1289, device='cuda:0')\n",
      "loss_zero_number=  152\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.47654370446920535\n",
      "gzsl: unseen=0.3622 , seen=0.5285 , h=0.4298\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  132\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48358674729289836\n",
      "gzsl: unseen=0.3659 , seen=0.5162 , h=0.4282\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  150\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48207038605965413\n",
      "gzsl: unseen=0.3590 , seen=0.5239 , h=0.4261\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84000 loss tensor(0.1175, device='cuda:0')\n",
      "loss_zero_number=  146\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4797389621512511\n",
      "gzsl: unseen=0.3601 , seen=0.5225 , h=0.4264\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  163\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48654457379789257\n",
      "gzsl: unseen=0.3609 , seen=0.5173 , h=0.4251\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84400 loss tensor(0.2364, device='cuda:0')\n",
      "loss_zero_number=  135\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4970183383980722\n",
      "gzsl: unseen=0.3718 , seen=0.5221 , h=0.4343\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  155\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48733964002283203\n",
      "gzsl: unseen=0.3616 , seen=0.5200 , h=0.4265\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  139\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49313647851253684\n",
      "gzsl: unseen=0.3758 , seen=0.5265 , h=0.4386\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  147\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49939607575946143\n",
      "gzsl: unseen=0.3913 , seen=0.5133 , h=0.4441\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  154\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49609875920461804\n",
      "gzsl: unseen=0.3837 , seen=0.5118 , h=0.4386\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  146\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49546899093283087\n",
      "gzsl: unseen=0.3757 , seen=0.5208 , h=0.4365\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  144\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48352957103841065\n",
      "gzsl: unseen=0.3571 , seen=0.5332 , h=0.4277\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85800 loss tensor(1.00000e-02 *\n",
      "       7.6676, device='cuda:0')\n",
      "loss_zero_number=  146\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4848596136305277\n",
      "gzsl: unseen=0.3536 , seen=0.5324 , h=0.4250\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86000 loss tensor(1.00000e-02 *\n",
      "       8.4565, device='cuda:0')\n",
      "loss_zero_number=  156\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5047745737506321\n",
      "gzsl: unseen=0.3820 , seen=0.5284 , h=0.4435\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  165\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5033946372055874\n",
      "gzsl: unseen=0.3899 , seen=0.5210 , h=0.4460\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86400 loss tensor(0.2350, device='cuda:0')\n",
      "loss_zero_number=  145\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.484103335428544\n",
      "gzsl: unseen=0.3563 , seen=0.5363 , h=0.4282\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  137\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4981610523944478\n",
      "gzsl: unseen=0.3690 , seen=0.5251 , h=0.4334\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  145\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49505435822223204\n",
      "gzsl: unseen=0.3798 , seen=0.5272 , h=0.4415\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  145\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4893112874623952\n",
      "gzsl: unseen=0.3656 , seen=0.5299 , h=0.4327\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  144\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4920493310291266\n",
      "gzsl: unseen=0.3701 , seen=0.5292 , h=0.4356\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  141\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49840221026359216\n",
      "gzsl: unseen=0.3819 , seen=0.5320 , h=0.4446\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  154\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48391110319937114\n",
      "gzsl: unseen=0.3628 , seen=0.5165 , h=0.4262\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  162\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4881919980276663\n",
      "gzsl: unseen=0.3620 , seen=0.5209 , h=0.4272\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  141\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49290600333028245\n",
      "gzsl: unseen=0.3633 , seen=0.5258 , h=0.4297\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  134\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48815344257835913\n",
      "gzsl: unseen=0.3700 , seen=0.5241 , h=0.4338\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88400 loss tensor(1.00000e-02 *\n",
      "       7.6249, device='cuda:0')\n",
      "loss_zero_number=  148\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48729675982740495\n",
      "gzsl: unseen=0.3692 , seen=0.5277 , h=0.4345\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  147\n",
      "Testing...\n",
      "class num: 50\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49011367090907465\n",
      "gzsl: unseen=0.3661 , seen=0.5195 , h=0.4295\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  154\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4888797299646126\n",
      "gzsl: unseen=0.3664 , seen=0.5245 , h=0.4314\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89000 loss tensor(1.00000e-02 *\n",
      "       6.7990, device='cuda:0')\n",
      "loss_zero_number=  166\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4896256828207944\n",
      "gzsl: unseen=0.3693 , seen=0.5253 , h=0.4337\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  147\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48986613714021054\n",
      "gzsl: unseen=0.3694 , seen=0.5238 , h=0.4333\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  152\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4909424753313872\n",
      "gzsl: unseen=0.3767 , seen=0.5158 , h=0.4354\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89600 loss tensor(0.1875, device='cuda:0')\n",
      "loss_zero_number=  151\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49564853794720803\n",
      "gzsl: unseen=0.3730 , seen=0.5269 , h=0.4368\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  154\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4897975624664255\n",
      "gzsl: unseen=0.3675 , seen=0.5284 , h=0.4335\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  160\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49641715079688903\n",
      "gzsl: unseen=0.3787 , seen=0.5317 , h=0.4424\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90200 loss tensor(1.00000e-02 *\n",
      "       3.7343, device='cuda:0')\n",
      "loss_zero_number=  148\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48740539115064885\n",
      "gzsl: unseen=0.3671 , seen=0.5221 , h=0.4311\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  157\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48115588257997643\n",
      "gzsl: unseen=0.3533 , seen=0.5435 , h=0.4282\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  156\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49424296426641634\n",
      "gzsl: unseen=0.3739 , seen=0.5336 , h=0.4397\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  164\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4912349264286949\n",
      "gzsl: unseen=0.3775 , seen=0.5272 , h=0.4400\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  155\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4783697693115158\n",
      "gzsl: unseen=0.3559 , seen=0.5281 , h=0.4252\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  157\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48372229787385995\n",
      "gzsl: unseen=0.3675 , seen=0.5252 , h=0.4324\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  157\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4902006155403727\n",
      "gzsl: unseen=0.3671 , seen=0.5356 , h=0.4356\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  153\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5053995800126342\n",
      "gzsl: unseen=0.3877 , seen=0.5321 , h=0.4486\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  151\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49321621567123153\n",
      "gzsl: unseen=0.3686 , seen=0.5420 , h=0.4388\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  149\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49535387495845024\n",
      "gzsl: unseen=0.3742 , seen=0.5293 , h=0.4384\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  149\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49394404201343983\n",
      "gzsl: unseen=0.3725 , seen=0.5237 , h=0.4353\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  155\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4869801853972735\n",
      "gzsl: unseen=0.3723 , seen=0.5286 , h=0.4369\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  148\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49171317598772907\n",
      "gzsl: unseen=0.3693 , seen=0.5359 , h=0.4373\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92800 loss tensor(0.3847, device='cuda:0')\n",
      "loss_zero_number=  155\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5016294049443824\n",
      "gzsl: unseen=0.3832 , seen=0.5325 , h=0.4457\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  158\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49863979230632294\n",
      "gzsl: unseen=0.3859 , seen=0.5234 , h=0.4443\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  157\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49334430698671405\n",
      "gzsl: unseen=0.3744 , seen=0.5251 , h=0.4371\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  168\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49650112710787925\n",
      "gzsl: unseen=0.3773 , seen=0.5245 , h=0.4389\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93600 loss tensor(1.00000e-03 *\n",
      "       5.3301, device='cuda:0')\n",
      "loss_zero_number=  176\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.500811444314391\n",
      "gzsl: unseen=0.3862 , seen=0.5273 , h=0.4459\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  161\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5010919642102288\n",
      "gzsl: unseen=0.3741 , seen=0.5214 , h=0.4357\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  160\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4907521512143558\n",
      "gzsl: unseen=0.3719 , seen=0.5364 , h=0.4392\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 94200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  155\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4998225686234045\n",
      "gzsl: unseen=0.3731 , seen=0.5329 , h=0.4389\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94400 loss tensor(0.1656, device='cuda:0')\n",
      "loss_zero_number=  162\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4995973490594918\n",
      "gzsl: unseen=0.3715 , seen=0.5257 , h=0.4353\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  161\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4987936026755685\n",
      "gzsl: unseen=0.3714 , seen=0.5327 , h=0.4377\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  145\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4821981225546028\n",
      "gzsl: unseen=0.3512 , seen=0.5356 , h=0.4242\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  151\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49697963990730665\n",
      "gzsl: unseen=0.3709 , seen=0.5281 , h=0.4357\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  162\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5001933180104635\n",
      "gzsl: unseen=0.3750 , seen=0.5230 , h=0.4368\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  146\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5023989955590984\n",
      "gzsl: unseen=0.3673 , seen=0.5319 , h=0.4346\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  159\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49840601278236113\n",
      "gzsl: unseen=0.3699 , seen=0.5171 , h=0.4313\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  159\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5008739568974707\n",
      "gzsl: unseen=0.3712 , seen=0.5276 , h=0.4358\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  164\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4986086623050575\n",
      "gzsl: unseen=0.3725 , seen=0.5262 , h=0.4362\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  175\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5052263989732942\n",
      "gzsl: unseen=0.3767 , seen=0.5295 , h=0.4402\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96400 loss tensor(0.1502, device='cuda:0')\n",
      "loss_zero_number=  153\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5005794116921164\n",
      "gzsl: unseen=0.3813 , seen=0.5208 , h=0.4403\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  159\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5006845010063838\n",
      "gzsl: unseen=0.3829 , seen=0.5287 , h=0.4442\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  163\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5031989100702973\n",
      "gzsl: unseen=0.3868 , seen=0.5270 , h=0.4462\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  166\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49336969285470106\n",
      "gzsl: unseen=0.3794 , seen=0.5161 , h=0.4373\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  160\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4932319968093984\n",
      "gzsl: unseen=0.3765 , seen=0.5228 , h=0.4377\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  171\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49356735236246835\n",
      "gzsl: unseen=0.3789 , seen=0.5198 , h=0.4383\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  161\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49669083001329073\n",
      "gzsl: unseen=0.3770 , seen=0.5145 , h=0.4352\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  158\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.49138944412849994\n",
      "gzsl: unseen=0.3656 , seen=0.5192 , h=0.4291\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  155\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4934718538624607\n",
      "gzsl: unseen=0.3758 , seen=0.5339 , h=0.4411\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  166\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5033363794232446\n",
      "gzsl: unseen=0.3769 , seen=0.5253 , h=0.4389\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98400 loss tensor(0.3029, device='cuda:0')\n",
      "loss_zero_number=  154\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.500488751133593\n",
      "gzsl: unseen=0.3910 , seen=0.5218 , h=0.4470\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  166\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5051332122417023\n",
      "gzsl: unseen=0.3899 , seen=0.5139 , h=0.4434\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98800 loss tensor(0.1311, device='cuda:0')\n",
      "loss_zero_number=  149\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48770345898821804\n",
      "gzsl: unseen=0.3519 , seen=0.5240 , h=0.4210\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  132\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.501869161700387\n",
      "gzsl: unseen=0.3787 , seen=0.5228 , h=0.4392\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99200 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  183\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.498776525919963\n",
      "gzsl: unseen=0.3776 , seen=0.5156 , h=0.4360\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99400 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  176\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.5014310053388492\n",
      "gzsl: unseen=0.3750 , seen=0.5263 , h=0.4380\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99600 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  163\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.48049396857603904\n",
      "gzsl: unseen=0.3436 , seen=0.5308 , h=0.4172\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 99800 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  164\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.491933967252748\n",
      "gzsl: unseen=0.3687 , seen=0.5279 , h=0.4342\n",
      "____________________________________________________________________________________________________\n",
      "episode: 100000 loss tensor(0., device='cuda:0')\n",
      "loss_zero_number=  171\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4919995134279907\n",
      "gzsl: unseen=0.3653 , seen=0.5237 , h=0.4304\n",
      "____________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "print(\"training...\")\n",
    "last_accuracy = 0.0\n",
    "loss_zero_num = 0\n",
    "writer = SummaryWriter()\n",
    "for episode in range(EPISODE):\n",
    "    #attribute_network.train()\n",
    "    attribute_network_scheduler.step(episode)\n",
    "    metric_network_scheduler.step(episode)\n",
    "\n",
    "    train_loader = DataLoader(train_data, batch_size=BATCH_SIZE, shuffle=True)\n",
    "\n",
    "    batch_labels, batch_features = train_loader.__iter__().next()\n",
    "    batch_id = np.unique(batch_labels)\n",
    "\n",
    "    batch_attributes = torch.Tensor([all_attributes[i] for i in batch_id]).squeeze(1)\n",
    "    batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(batch_id.size, 0))\n",
    "    batch_attributes_ext = batch_attributes.repeat(BATCH_SIZE, 1)\n",
    "\n",
    "    batch_features_ext = Variable(batch_features_ext).cuda(GPU).float()  # 32*2048\n",
    "    batch_attributes_ext = Variable(batch_attributes_ext).cuda(GPU)\n",
    "    \n",
    "\n",
    "    re_batch_labels = []\n",
    "    for label in batch_labels.numpy():\n",
    "        index = np.argwhere(batch_id == label)\n",
    "        re_batch_labels.append(index[0][0])\n",
    "    re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "    re_batch_labels = Variable(re_batch_labels).cuda(GPU)\n",
    "    \n",
    "\n",
    "    criterion = HardTripletLoss_D(margin = Margin).cuda(GPU)\n",
    "    triplet_loss= criterion(metric_network(attribute_network(batch_attributes_ext)), \n",
    "                            metric_network(batch_features_ext), re_batch_labels)\n",
    "    if triplet_loss == 0:\n",
    "        loss_zero_num = loss_zero_num + 1\n",
    "    metric_network.zero_grad()\n",
    "    attribute_network.zero_grad()\n",
    "    \n",
    "    triplet_loss.backward()\n",
    "    \n",
    "    attribute_network_optim.step()\n",
    "    metric_network_optim.step()\n",
    "    \n",
    "    if (episode+1)%200 == 0 or episode==0:\n",
    "        print(\"episode:\", episode+1, \"loss\", triplet_loss)\n",
    "        print('loss_zero_number= ',loss_zero_num)\n",
    "        #writer.add_scalar('data/loss_zero_number', loss_zero_num, episode)\n",
    "        loss_zero_num = 0\n",
    "        writer.add_scalar('data/loss', triplet_loss, episode)\n",
    "    if (episode+1)%200 == 0 or episode==0:\n",
    "        print(\"Testing...\")\n",
    "        #attribute_network.eval()\n",
    "        zsl_accuracy = compute_accuracy_per_class(test_features, test_label, test_id, test_attributes)\n",
    "        gzsl_unseen_accuracy = compute_accuracy_per_class(test_features, test_label, np.arange(200), attributes)\n",
    "        gzsl_seen_accuracy  = compute_accuracy_per_class(test_seen_features, test_seen_label, np.arange(200), attributes)\n",
    "        H = 2 * gzsl_seen_accuracy * gzsl_unseen_accuracy / (gzsl_unseen_accuracy + gzsl_seen_accuracy)\n",
    "        print('zsl:', zsl_accuracy)\n",
    "        #print('zsl:', zsl_accuracy2)\n",
    "        print('gzsl: unseen=%.4f , seen=%.4f , h=%.4f' % (gzsl_unseen_accuracy , gzsl_seen_accuracy, H))\n",
    "        #print('gzsl: unseen=%.4f , seen=%.4f , h=%.4f' % (gzsl_unseen_accuracy2 , gzsl_seen_accuracy2, H2))\n",
    "        print('_'*100)\n",
    "        writer.add_scalar('data/zsl_accuracy', zsl_accuracy, episode)\n",
    "        writer.add_scalar('data/gzsl_unseen_accuracy', gzsl_unseen_accuracy, episode)\n",
    "        writer.add_scalar('data/gzsl_seen_accuracy', gzsl_seen_accuracy, episode)\n",
    "        writer.add_scalar('data/H', H, episode)\n",
    "#writer.export_scalars_to_json(\"./test.json\")\n",
    "writer.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "pytorch"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
